package com.hpli.domain.strategy.service;


import com.hpli.domain.strategy.model.valobj.RuleWeightVO;

import java.util.List;
import java.util.Map;

/**
 * @Author: 汀
 * @CreateTime: 2025-04-18
 * @Description: 抽奖规则接口；提供对规则的业务功能查询
 * @Version: 1.0
 */

public interface IRaffleRule {

    /**
     * 根据规则树ID集合查询奖品中加锁数量的配置【部分奖品需要抽奖N次解锁】
     *
     * @param treeIds 规则树ID值
     * @return key 规则树， value rule_lock加锁值
     */
    Map<String, Integer> queryAwardRuleLockCount(String[] treeIds);

    /**
     * 查询奖品权重配置
     *
     * @param strategyId 策略ID
     * @return 权重规则
     */
    List<RuleWeightVO> queryAwardRuleWeight(Long strategyId);

    /**
     * 查询奖品权重配置
     *
     * @param activityId 活动ID
     * @return 权重规则
     */
    List<RuleWeightVO> queryAwardRuleWeightByActivityId(Long activityId);

}
